草庐IT

ruby - Proc 和 Lambda 之间的区别

全部标签

ruby - 为什么 Logger 输出到 STDOUT 不会重定向到文件?

这个脚本被命名为o.rb:@logger=Logger.new(STDOUT)@logger.info"start_time:#{start_time}"当我使用./o.rb运行它时,控制台上的输出是正确的。但是,当我尝试./o.rb>log.txt2>&1时,日志文件是空的!为什么会这样?我在使用简单的puts函数时遇到了同样的问题。更新这将重现此问题:require'logger'logger=Logger.new(STDOUT)loopdologger.info"Thisisatesthaha"sleep(1)end当我使用./foo.rb运行它时,它会正确写入控制台输出。当我运

ruby-on-rails - Rails 3 和 PDFKit,如何将 HTML 文件转换为横向 PDF?

我可以很好地将HTML页面转换为PDF文档。问题是,我不知道如何将HTML文件转换为横向PDF。有没有办法在Controller中设置它?从Controller...defpdf_customer_shipments@customer=Customer.find(params[:id])@shipments=Shipment.where("customer_id=?ANDstatus='Open'",@customer.id)render:layout=>'pdf'end 最佳答案 如果这有帮助,我正在使用PDFKit,并且可以使用

ruby-on-rails - 是否有任何基于可定制模板的 Ruby 或 Rails 报告工具?

我正在寻找一个用ruby​​或rails完成的报告生成器,它允许用户首先定义一个模板,然后将数据提取到模板中。我一直在浏览“TheRubyBox:报告部分”(https://www.ruby-toolbox.com/categories/reporting.html)有两个报告工具类似于我正在寻找的:ThinReports:这真的很好。您下载一个模板编辑器,然后定义您自己的报告模板,然后通过组合thinreportsgem,您可以从您的应用程序中获取SVG或PDF报告。ODFReport:它使用ODF文件作为模板,可以通过OpenOffice和MSWord2010进行编辑。然后你就可以

ruby - Ruby 中的默认哈希值 (Rubykoans.com -> about_hashes.rb)

我正在浏览RubyKoans中的about_hashes.rb.1个练习让我感到困惑:deftest_default_valuehash1=Hash.newhash1[:one]=1assert_equal1,hash1[:one]#okassert_equalnil,hash1[:two]#okhash2=Hash.new("dos")hash2[:one]=1assert_equal1,hash2[:one]#okassert_equal"dos",hash2[:two]#hm?end我的猜测是Hash.new("dos")使“dos”成为所有不存在键的默认答案。我说的对吗?

ruby bool 运算符或 ||区别

这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:Ruby:differencebetween||and'or'在ruby​​中,不是'or'和'||'同样的事情?执行代码时会得到不同的结果。line=""if(line.start_with?"["||line.strip.empty?)puts"yes"endline=""if(line.start_with?"["orline.strip.empty?)puts"yes"end 最佳答案 不,这两个运算符的效果相同,但优先级不同。||运算符具有非常高

ruby-on-rails - 使用 Typheous 手动登录网站

最近我在使用Mechanize来处理这种事情,但我想使用Typhoeus,我已经在其他地方使用了它。我想模仿Mechanize的行为,问题是我想登录到一个站点并以登录用户的身份执行请求。这是脚本的通用版本:require'rubygems'require'typhoeus'GET_URL='http://localhost:3000'POST_URL="http://localhost:3000/admins/sign_in"URL="http://localhost:3000/dashboard"USERNAME_FIELD='admin[email]'PASSWORD_FIELD=

ruby-on-rails - 如何在 RoR 中上传文本文件并将内容解析到数据库中

到目前为止,我已经成功上传了一个文件:#Innew.html.erb并访问Controller中的文件#Incontroller#create@text=params[:upload][:file]但是,这给我的只是文件名,而不是文件的内容。如何访问其内容?我知道这是一个跳跃,但是一旦我可以访问文件的内容,是否可以上传文件夹并遍历文件? 最佳答案 完整示例以上传包含联系人的导入文件为例。您无需存储此导入文件,只需对其进行处理并丢弃即可。路线routes.rbresources:contactsdocollectiondoget'im

ruby - 将多个变量与单个表达式中的值进行比较

我有两个变量a和b。我想将a和b都与一个值进行比较,例如10。我可以这样做:10==a&&10==b但是,我想知道是否有任何方法可以将它写成一个表达式?(例如像a==b==10) 最佳答案 [a,b,3].all?{|x|x==10}但在这种情况下[].all?{|x|x==10}也会返回true 关于ruby-将多个变量与单个表达式中的值进行比较,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

ruby-on-rails - 如果评估的最后一个语句是 If 语句,Ruby 会返回什么

我的理解是ruby​​返回函数中评估的最后一条语句。如果函数以if语句结束,结果为falsedefthing(input)item=input=="hi"ifitem[]endendputsthing("hi").class#>Arrayputsthing("nothi").class#>NilClass我喜欢这个功能(如果语句为false,则返回nil),但为什么不返回false(从赋值给item)? 最佳答案 如果您的if语句没有运行任何代码,则返回nil,否则返回已运行代码的值。Irb是试验这些东西的好工具。irb(main)

ruby - 迭代时添加到数组

为什么这段代码会“锁定”ruby?克服它的最好方法是什么?我在下面发布了我的解决方案。还有另一种方法可以做到这一点吗?提前致谢!代码:nums=[1,2,3]nums.each{|i|nums我的解决方案:nums=[1,2,3]adjustments=[]nums.each{|i|adjustments 最佳答案 那是因为每个都使用一个枚举器(所以如果你不断添加它,它永远不会到达末尾)。您可以在应用之前复制数组。nums=[1,2,3]nums.dup.each{|i|nums另一种方法是附加map给出的额外元素:nums=[1,